Back in the days when WordPress introduced plugins and themes, a centralized repository was the best thing imaginable. However, the WordPress ecosystem has evolved and a single repository no longer fills all needs. Is it time to open the doors for commercial repositories?
Today, many quality themes are commercial. Plugins are following this path. What started as single brave plugins is becoming a trend.
And, it turns out that people are happy. As long as paid code helps save more than it costs, everyone benefits. Webmasters work with more reliable code, authors make a decent living and WordPress turns from a fun project to the de-facto CMS of choice.
What we’re missing is a convenient way for WordPress Admins to search, download and upgrade commercial plugins and themes.
My vision is to:
- Agree on a common method for connecting alternative repositories to WordPress
- Build a plugin that hooks to the Plugins and Themes Admin pages and includes these repositories
- Push to make this plugin a part of WordPress core
Let’s see what all this means.
Adding Alternative Sources to the WordPress Admin
Most commercial code I’m seeing already hooks to the WordPress Admin and can push notifications about new versions. WPML does that too.
While this approach works, it suffers from very significant problems that we’re already seeing ourselves:
- First install must be manual – this is a real problem for some clients.
- Each plugin and theme handles these upgrades a bit differently. When we do that, we confuse our clients.
- We each add similar code for the exact same purpose. This leads to memory waste and bloat.
- New authors need to invent the wheel. It’s just a waste of good resources.
By unifying the search, install and upgrade process, we’ll save ourselves all these problems. Clients will enjoy a better experience and authors will have less work on their hands.
To do this, we need to create a single plugin that hooks to the Plugins and Themes admin section. It comes pre-configured with a list of alternative sources and users can add others themselves.
Each repository will accept user-credentials. This way, we can deliver the correct downloads for paying clients, based on what they purchased.
It all Starts with a Search
The first job of the new plugin would be to allow users to search in all repositories. When users go to the Themes page and look for “mobile apps”, they should find a theme whose description includes these keywords.
You’ll see where the theme / plugin comes from, if it’s free or paid and the price.
Install, Notify and Upgrade
Once you’ve purchased a plugin or a theme, it will appear in the list of plugins available to you. Just click on the regular Install button and WordPress will take care of the rest. We know how to hook to this function, so it’s just a matter of providing the correct repository URLs.
When upgrades are available, they will appear exactly like other plugins appear on WordPress. When we have new versions, there’s no need to take over the Admin bar. We should stick to the standard notification system, which WordPress keeps refining from one release to the other.
However, we can add our own reminders there. For example, if you’re selling a subscription-based theme or plugin, you can add a reminder that will show up in the same place. This will draw attention to the fact that some action is required.
Did Anyone Say “In-App Sales”?
If you made it this far without thinking about In-App Sales, let me try to interest you.
When I find something I need from the new Plugins and Themes Search, I’d like to buy it straight from there. I don’t want to leave the CMS, go to a different site and start my search all over again. I’m already there, with my credit card in hand, just begging for someone to take my money and deliver my purchase.
I want to see a big Buy Now button, next to the disabled Download. When I click on it, I’ll be happy to enter my details and complete the purchase. Then, I’d be really thrilled if I can download the bloody thing and start playing with it.
It’s not very difficult to build as long as we agree on some basics. The purchase itself can be done on our server, via a frame. All we need is a way to display these purchase frames so that they integrate with the site. We should make sure that when purchases complete, clients have immediate access to what they bought. Most of us do that today anyway.
I Want to Give Back to WordPress
We can do all of this by ourselves. However, when the time comes and this becomes a part of WordPress core, I’d like contribute a certain percentage to the WordPress project. Whenever WordPress helps me sell, I want to repay by contributing to the project. I’m sure that the extra income from hundreds of plugins and themes can boost WordPress to even greater heights.
What We’re Building
Just to be clear, the intention is to allow theme and plugin developers to set up their own repositories, and let WordPress users connect to them in a natural way.
Users will know that they’re looking at code that comes from different places. They can choose which sources to include in their listing.
To facilitate this, since we’re all using WordPress sites, we’ll create two plugins:
- One that sits on the user site and connects to different repositories
- One that authors can run on their servers, enabling their sites to work as repositories
What do you think?
Relevanssi is definitely in, if technicalities get sorted out. It’s just the thing I’d like to see, really, as having an automatic upgrade system would be a great benefit to my users, yet I have little interest in coding and maintaining such a system myself.
[ like! ]
Thanks Glen. I’ve been thinking about adding real Like and +1 buttons to the blog 😉
As an end user, I’ve been craving this for a long time. Of course, it means extra effort for the wordpress.org maintainers, so like you said there should definitely be some compensation involved. I a small percentage of each theme & plugin sold should go to the WordPress Foundation, not Automattic, seeing as the WordPress Extend repository is more of a ‘public service’ directly related to the WordPress software more so than the commercial WordPress.com service.
Excellent idea and a very good concept. It is a real pain to manually install and upgrade the commercial plugins especially if we were to perform it on multiple sites. Go ahead with the development and I am sure you will get a very good response.
Excellent idea.
This is certainly very good idea! I think all the interested WP developers should have opportunity to give a hand on this – any public SVN or GIT? Some place where we can share the ideas (forum…)?
Maybe I caused some confusion. I don’t want to build a centralized repository like we have on WP.org today. It will start nice and will soon turn ugly.
I want to create the tools so that anyone can run a simple repository for his own plugins and themes. You don’t need to submit them anywhere and ask for any approval. It’s your repository.
WordPress will be able to connect to all those different repositories and find different things there. If all these repos speak the same protocol, it’s going to be fine.
Yes, I understand. I was just asking whether the development of this “extension” for the plugins already started and if the source code is exposed somewhere.
Not yet. We’re looking for some more feedback from other developers and then we’ll start. I think that GIT is a good place to share this work.
Excellent , this is what I’m thinking about.
I’ve been thinking about an alternative repository since I started working with WordPress in 2007 but I have not been able to allocate the time to get past the initial concept. I wish you luck with your attempt and hope you are more successful than I am. If you would like to collaborate, perhaps we could work together? Drop me an email and we’ll see if we can work something out together.
We’re considering our alternatives and I’ll see what we have in a few days. I’ll contact you privately to see what we might be able to work out.
That’s an excellent idea. Hope to see something soon. I also pulled out of WordPress.org and setup my own repository on my website. By the way my plugin gets automatic updates the same way it used to get from WordPress.org, so for users it’s all transparent. They don’t even know when the switch happened. If there was a centralized repository of sorts, not all developers like me would have to re-invent the wheel.
Great to hear that you’re interested. We’ll have a fully working version in a few weeks. I’ll write all about it here in our blog.
Interesting approach, has the idea been developed further?
Yes, and it’s live now: http://wp-compatibility.com